from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import db,create_app
from info import models


# 调用init中工厂方法,通过传入参数的不同创建不同的应用实例
from info.models import User

app = create_app('developmentConfig')
# 由manager接管app
manager = Manager(app)
# 将 app 与 db 关联
Migrate(app, db)
# 将迁移命令添加到manager中
manager.add_command('db', MigrateCommand)


@manager.option('-u', '--name', dest='name')
@manager.option('-p', '--password', dest='password')
def createsuperuser(name, password):

    # 判断参数
    if not all([name, password]):
        print('参数不足')
        return

    # 初始化模型对象,添加到数据库
    user = User()
    user.mobile = name
    user.nick_name = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
        print('创建成功')
    except Exception as e:
        db.session.rollback()
        print(e)







if __name__ == '__main__':
    # flask应用程序实例的run方法,启动web服务器
    manager.run()
